package com.akk.module.avs.service;

import com.akk.module.avs.entity.AvsYbTagType;
import com.akk.module.avs.entity.AvsYbTagTypeExample;
import com.akk.module.avs.entity.AvsYbTagsExample;
import com.akk.module.avs.mapper.AvsYbTagTypeMapper;
import com.akk.module.avs.mapper.AvsYbTagsMapper;
import com.akk.module.avs.mapper.dao.AvsYbTagsTypeDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

@Service
public class AvsYbTagTypeService {

    @Autowired
    private AvsYbTagTypeExample tagTypeExample;

    @Autowired
    private AvsYbTagTypeMapper tagTypeMapper;

    @Autowired
    private AvsYbTagsExample tagsExample;

    @Autowired
    private AvsYbTagsMapper tagsMapper;

    @Autowired
    private AvsYbTagsTypeDao tagsTypeDao;

    public List<AvsYbTagType> findAllByParams(Map params){
        tagTypeExample.clear();
        AvsYbTagTypeExample.Criteria criteria = tagTypeExample.createCriteria();
        if (params.containsKey("appId"))
            criteria.andAppIdEqualTo(params.get("appId").toString());
        return tagTypeMapper.selectByExample(tagTypeExample);
    }

    public void save(AvsYbTagType tagType){
        tagTypeMapper.insert(tagType);
    }

    @Transactional
    public void del(Long tagTypeId){
        tagsTypeDao.deleteByTypeIdWithCard(tagTypeId);
        tagsExample.clear();
        tagsExample.createCriteria().andTagTypeIdEqualTo(tagTypeId);
        tagsMapper.deleteByExample(tagsExample);
        tagTypeMapper.deleteByPrimaryKey(tagTypeId);
    }

}
